<?php

class DatabaseObject_Shop extends DatabaseObject {

    public function __construct($db) {
        parent::__construct($db, 'shop', 'id');

        // далее перечислены все поля таблицы

        $this->add('userId');
        $this->add('name');
        $this->add('welcome');
        $this->add('refund');
        $this->add('addition');
        $this->add('pc2');
        $this->add('pc3');
        $this->add('pc4');
        $this->add('pc5');
        $this->add('pc6');
        $this->add('pc7');
        $this->add('pc8');
        $this->add('pc9');
        $this->add('pc10');
        $this->add('pc21');
        $this->add('pc22');
        $this->add('pc23');
        $this->add('plimit');
        $this->add('data_end');
         $this->add('payflag');
    }

    private static function _GetBaseQuery($db, $options) {
        // инициализация настроек
        $defaults = array();

        foreach ($defaults as $k => $v) {
            $options[$k] = array_key_exists($k, $options) ? $options[$k] : $v;
        }

        // создание запроса на получение
        $select = $db->select();
        $select->from(array('sh' => 'shop'), array());

        return $select;
    }

    // проверка адреса на занятость
    public function shopnameExists($login) {
        $query = sprintf('select count(*) as num from %s where name = \'%s\' and userId <> %s', $this->_table, $login, Zend_Auth::getInstance()->getIdentity()->id);
        $result = $this->_db->fetchOne($query);

        return $result > 0;
    }

    public function GetShopUserId($db, $userId) {
        $select = self::_GetBaseQuery($db, array());
        $select->from(null, 'sh.*');
        $select->where('userId = ?', $userId);
        return $db->fetchOne($select);
    }

    public function GetShopName($db, $name) {
        $select = self::_GetBaseQuery($db, array());
        $select->from(null, 'sh.*');
        $select->where('name = ?', $name);
        return $db->fetchOne($select);
    }

}
